package com.itheima.branch;

public class SwitchDemo2 {
    public static void main(String[] args) {
        //目标:清楚switch的注意事项,穿透性的应用
        test1();
        test2();
        test3();
    }

    //1.表达类型只能是byte,short,char,int,JDK5开始支持枚举,JDK7开始支持String,不支持String,float,long
    public static void test1() {
        double a=10.6;  //报错
        double b=0.1+0.2;   //实则并不是0.3,小数部分太难凑
        System.out.println(b);
        /*switch(b){
            case 0.3:
                System.out.println("case 0.3");
                break;
            default:
                System.out.println("default");
        }*/
    }

    //2.case给出的值不能重复,且只能是字面量,不能是变量
    public static void test2() {
        int a=10;
        switch(a){
            case 10:
                System.out.println("case 10");
                break;
            /*case 10:  报错
                System.out.println("case 10");
                break;*/
            /*case a:  报错
                System.out.println("case a");
                break;*/
            default:
                System.out.println("default");
        }
    }

    //3.正常使用switch时,不要忘记break.否则会有穿透现象
    //相同程序的case块,可以通过穿透性合并,从而减少重复代码
    public static void test3(){
        String week ="周五";
        switch(week){
            case"周一":
                System.out.println("埋头苦干");
                break;
            case"周二":
                System.out.println("请求大牛程序员帮忙");
                break;
            case"周三":
                System.out.println("读书");
            case"周四":   //周四周五周六干一件事
            case"周五":
            case"周六":
                System.out.println("看电影");
                break;
            case"周日":
                System.out.println("骑车");
                break;
        }
    }
}
